package com.hyzx.qbasic.admin.domain.dao;

import com.hyzx.qbasic.admin.model.po.ProcessDefinitionPO;
import com.hyzx.qbasic.admin.model.po.ProcessDefinitionPagedInfoPO;
import com.hyzx.qbasic.admin.model.po.ProcessTaskDefinitionPO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ProcessDefinitionMapper {

    int deleteProcessDefinition(List<Integer> processDefinitionIdList);

    int addProcessDefinition(ProcessDefinitionPO record);

    int editProcessDefinition(ProcessDefinitionPO record);

    ProcessDefinitionPO getProcessDefinition(@Param("processDefinitionId") Integer processDefinitionId);

    List<ProcessDefinitionPagedInfoPO> getPagedProcessDefinitionList(@Param("processCategoryId") Integer processCategoryId, @Param("processDefinitionName") String processDefinitionName);

    List<ProcessDefinitionPagedInfoPO> getProcessDefinitionListByCategoryId(@Param("processCategoryId") Integer processCategoryId);

    List<ProcessDefinitionPagedInfoPO> getProcessDefinitionListByCategoryKey(@Param("processCategoryKey") String processCategoryKey);

    int addProcessDefinitionTask(List<ProcessTaskDefinitionPO> tasks);

    List<ProcessTaskDefinitionPO> getTaskDefinition(@Param("processDefinitionId") Integer processDefinitionId);

    int deleteTaskDefinition(@Param("processDefinitionId") Integer processDefinitionId);

    int deleteProcessCategory(List<Integer> processCategoryIdList);
}